package com.example.vo;

/**
 * 查询条件
 *
 * @author 王俊华
 * @date 20181108 14:26:56
 * @modify 20181108 王俊华 version 创建
 * @since version
 */
public class QueryParam {

    /**
     * 描述该枚举的用途
     *
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public enum Operator {
        /**
         * EQ 描述此枚举常量
         */
        EQ,
        /**
         * NOEQ 描述此枚举常量
         */
        NOEQ,
        /**
         * LIKE 描述此枚举常量
         */
        LIKE,
        /**
         * NOTLIKE 描述此枚举常量
         */
        NOTLIKE,
        /**
         * GT 描述此枚举常量
         */
        GT,
        /**
         * LT 描述此枚举常量
         */
        LT,
        /**
         * GTE 描述此枚举常量
         */
        GTE,
        /**
         * LTE 描述此枚举常量
         */
        LTE,
        /**
         * BETWEEN 描述此枚举常量
         */
        BETWEEN
    }

    /**
     * 排序字段
     */
    public String sortName;
    /**
     * operator 描述此字段
     */
    public Operator operator;
    /**
     * value 描述此字段
     */
    public Object value;
    /**
     * endValue 描述此字段
     */
    public Object endValue;

    /**
     * 描述该构造方法实现的功能
     *
     * @param sortName 描述此参数
     * @param operator 描述此参数
     * @param value    描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public QueryParam(String sortName, Operator operator, Object value) {
        this.sortName = sortName;
        this.operator = operator;
        this.value = value;
    }

    /**
     * 描述该构造方法实现的功能
     *
     * @param sortName   描述此参数
     * @param operator   描述此参数
     * @param startValue 描述此参数
     * @param endValue   描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public QueryParam(String sortName, Operator operator, Object startValue, Object endValue) {
        this.sortName = sortName;
        this.operator = operator;
        this.value = startValue;
        this.endValue = endValue;
    }

    /**
     * 获取 sort name.
     *
     * @return 返回 sort name
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public String getSortName() {
        return sortName;
    }

    /**
     * 设置 sort name.
     *
     * @param sortName 描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public void setSortName(String sortName) {
        this.sortName = sortName;
    }

    /**
     * 获取 operator.
     *
     * @return 返回 operator
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public Operator getOperator() {
        return operator;
    }

    /**
     * 设置 operator.
     *
     * @param operator 描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public void setOperator(Operator operator) {
        this.operator = operator;
    }

    /**
     * 获取 value.
     *
     * @return 返回 value
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public Object getValue() {
        return value;
    }

    /**
     * 设置 value.
     *
     * @param value 描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public void setValue(Object value) {
        this.value = value;
    }

    /**
     * 获取 end value.
     *
     * @return 返回 end value
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public Object getEndValue() {
        return endValue;
    }

    /**
     * 设置 end value.
     *
     * @param endValue 描述此参数
     * @author 王俊华
     * @date 20181108 14:26:56
     * @modify 20181108 王俊华 version 创建
     * @since version
     */
    public void setEndValue(Object endValue) {
        this.endValue = endValue;
    }
}
